<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="btns">
        <button data-path="/home">首页</button>
        <button data-path="/news">新闻</button>
        <button data-path="/music">音乐</button>
    </div>
    <div id="content"></div>
    <script>
        // component切换承载的地方
        const con = document.querySelector("#content")
        // 路由表
        const routes = [
            { path: "/home", component: "我是首页啊" },
            { path: "/news", component: "这是一个热门新闻" },
            { path: "/music", component: "周杰伦发布新歌" },
        ];
        // 获取每一个按钮
        const btns = document.querySelectorAll(".btns button")
        // 遍历按钮并绑定事件，点击改变地址的hash
        // 使用hash是因为hash地址的改变不会刷新页面
        btns.forEach(item=>{
            item.onclick = function(){
                console.log(this.dataset);
                // //使用location.hash可以改变hash地址
                location.hash  =this.dataset.path
            }
        })

        // 使用onhashchange事件监听hash的变更
        // 根据当前的hash地址和路由表对比，展示内容
        window.onhashchange  =function(e){
            // 获取当前最新的hash
            const newHash = e.newURL.split("#")[1]
            // 去路由表判断，看哪一个路由视图符合条件，展示视图
            routes.forEach(item=>{
                if(item.path === newHash){
                    con.innerHTML = item.component
                }
            })
        }
    </script>
</body>

</html>